1
Выбор строк для сохранения
DSAI2202Lab 7: Reasoning Across Relationships

В реестре UniLearn и в LMS не совпадают идентификаторы студентов. Команде нужно несколько отчётов, и в каждом из них ответ на вопрос «Строки какого источника должны попасть в результат?»

Используйте базу данных из лабы 6

Если вы уже запускали lab6_7_setup.sql в лабе 6, оставьте эти данные. В противном случае откройте в pgAdmin общий файл настройки, выданный преподавателем, и выполните его один раз. Выбирайте lab6_7 в каждом новом подключении Query Tool.

Начните с уже знакомого соединения

  1. Просмотрите students и lms_roster: 22 идентификатора из реестра и 6 идентификаторов из LMS.
  2. Выполните INNER JOIN по правилу сопоставления из лабы 6.
  3. Определите четыре идентификатора, которые есть в обоих источниках.
  4. Объясните, почему этот результат не может быть полным списком ни из одного источника.

Пять запросов отчётов

Перечислите общие учётные записи; сохраните всех студентов из реестра; сохраните все учётные записи LMS; согласуйте оба источника; сформируйте варианты пар «студент–курс». Для этих запросов вы напишете запросы с INNER, LEFT, RIGHT, FULL и CROSS JOIN.

✍️ Спрогнозируйте недостающий контекст
S103 зарегистрирован, но не имеет учётной записи в LMS. S901 импортирован в LMS, но отсутствует в реестре. Какое место займёт каждый из них в полном отчёте?
Общие учётные записи
SET search_path TO lab6_7;

SELECT s.student_id AS registry_id, s.student_name,
       r.student_id AS lms_id, r.lms_name
FROM students AS s
INNER JOIN lms_roster AS r
  ON s.student_id = r.student_id
ORDER BY s.student_id;
Проверьте совпавшие ID

Четыре строки: S101, S102, S105 и S121. Каждый ID уникален в обеих таблицах, поэтому каждая совпавшая пара встречается один раз. Этот отчёт содержит только общие учётные записи.

У Умы (S121) есть учётная запись в LMS, хотя она ни на что не записана. Совпадение учётных записей не доказывает участие в курсе.